package cl.ncx.cmvrc.delegate.solicitud;

import org.jboss.logging.Logger;

import cl.ncx.cmvrc.persistence.base.entities.solicitud.Solicitud;
import cl.ncx.cmvrc.persistence.bean.solicitudes.ISolicitudesSession;

import cl.ncx.cmvrc.util.serviceLocator.IServiceLocator;
import cl.ncx.cmvrc.util.serviceLocator.ServiceLocator;
import cl.ncx.cmvrc.util.serviceLocator.ServiceLocatorException;

public class SolicitudDelegate {
	
	private final static Logger logger = Logger.getLogger(SolicitudDelegate.class);
	
	private static SolicitudDelegate solicitudDelegate;
	private ISolicitudesSession solicitudSession;
	
	public static synchronized SolicitudDelegate getInstance(){
		if(solicitudDelegate == null)
			solicitudDelegate = new SolicitudDelegate();
		return solicitudDelegate;
	}
	
	private SolicitudDelegate() {
		initLookup();
	}
	
	private void initLookup(){
		String Session_Name = ISolicitudesSession.JNDI_NAME;
		
		try{
			IServiceLocator sl = ServiceLocator.getInstance();
			solicitudSession = (ISolicitudesSession) sl.lookup(Session_Name);
			
		}catch (ServiceLocatorException e) {
			e.printStackTrace();
		}
	}
	
	public Solicitud ingresoNuevaSolicitud(Solicitud solicitud){
		try{
			return solicitudSession.ingresoNuevaSolicitud(solicitud);
		}
		catch(Exception e){
			e.printStackTrace();
			logger.info("Fallo metodo: ingresoNuevaSolicitud");
		}
		return null;
	}
	
	public Solicitud buscarSolicitudByID(Integer solicitudId)
	{
		logger.info("buscarSolicitudByID");
		try{
			return solicitudSession.findSolicitudById(solicitudId);
		}catch(Exception e)
		{
			e.printStackTrace();
			logger.info("fallo metodo: buscarSolicitudByID");
		}
		return null;
	}

}